package singletonMode;

/**
 * @author： pang-yun
 * @date： 2021-10-20 17:03
 * 功能目的 ：用于 饿汉式 （静态常量）
 *
 * 1. 构造器私有化 （防止 new）
 * 2. 类的内部创建对象
 * 3. 向外暴露一个静态的公共方法
 * 4. 代码实现
 *
 * 优点： 写法简单，在类装载的时候就完成了实例化，避免了线程同步问题
 * 缺点：  在类装载的时候就实现了实例化 没有达到 lazy Loading 的效果  如果从始至终都没有使用这个实例 就会造成内存浪费
 */

public class SingleA {
    public static void main(String[] args) {
        SingletonA instance = SingletonA.getInstance();
        SingletonA instance1 = SingletonA.getInstance();
        System.out.println(instance1==instance);
    }
}

class SingletonA {
    // 1. 构造器私有化  防止外部对象 new
    private SingletonA(){}
    // 2. 在类的内部创建对象
    private static final SingletonA instance=new SingletonA();
    // 3. 向外部暴露一个静态的公共方法来获取唯一对象
    public static SingletonA getInstance(){
        return instance;
    }
}